type action = Ast | Compile

let _ =
	let action = if Array.length Sys.argv > 1 then
		List.assoc Sys.argv.(1) [ ("-a", Ast);
															("-c", Compile) ]
	
	else Compile in
  	let lexbuf = Lexing.from_channel stdin in
  	let program = Parser.program Scanner.token lexbuf in
 		match action with
			Ast -> let listing = Ast.string_of_program program
           									in print_string listing
			| Compile -> print_string (Compile.compile program)